﻿--[[
    Показывает на радаре иконки ближайших пикапов

    клиент
]]

-- список существующих иконок
local blips = {}

-- настройки
local iconMaxDistance = 200 -- макс. дистанция видимости
local iconColor = { 255,255,0,50 } -- цвет
local iconOrder = 0 -- номер слоя
local iconSize = 1 -- размер на карте - 1 юнит
local iconType = 0 -- стандартная квадратно треугольная

local elementType = 'pickup'










function blips_createAttachedIcon ( )
    if getElementType(source) ~= elementType or blips[source] then return end

    blips[source] = createBlipAttachedTo( source,
        iconType, iconSize,
        iconColor[1], iconColor[2], iconColor[3], iconColor[4],
        iconOrder, iconMaxDistance
    )
end

function blips_destroyAttachedIcon ( )
    if getElementType(source) ~= elementType then return end

    if blips[source] then
        destroyElement( blips[source] )
        blips[source] = nil
    end
end











-- при старте только этого ресурса
addEventHandler( "onClientResourceStart", resourceRoot,
    function()
        -- получим список застримленных пикапов
        local list = getElementsByType( elementType, root, true )

        -- для каждой создадим иконку
        local i, element = next(list)
        while i do
            if not blips[element] then
                blips[element] = createBlipAttachedTo( element,
                    iconType, iconSize,
                    iconColor[1], iconColor[2], iconColor[3], iconColor[4],
                    iconOrder, iconMaxDistance
                )
            end

            i, element = next(list, i)
        end



        -- добавим обработчики для событий
        addEventHandler( "onClientElementStreamIn", root, blips_createAttachedIcon )
        addEventHandler( "onClientElementDestroy",  root, blips_destroyAttachedIcon )
    end
)
